Network gateways are devices adapted for providing an interface or routing functionality between network segments in networks that use different protocols. Typically, network gateways are able to provide network interoperability and routing of data between different networks by including devices, implemented in hardware, in software or in a combination of both, such as basic routing functions, protocol translators, impedance matching devices, rate converters, fault isolators, and signal translators.
At the present time, next to the basic routing function, network gateways often include a variety of auxiliary functions. Some of the auxiliary functions may be network related, such as e.g. a Network Address Translation (NAT) function or a firewall function. Other functions may be more application-level, such as e.g. a parental control function blocking access to certain websites, a spam filter for e-mail applications or a transcoder for media transcoding. Yet other functions could be related to e.g. special routing rules, remote access functionality, and so on. This is schematically illustrated in FIG. 1 showing a network gateway 1 between a network or a network segment 2, such as e.g. a network or a network segment in a Local Area Network (LAN), and a network or a network segment 3, such as e.g. a network or a network segment in a Wide Area Network (WAN). The gateway 1 is illustrated to include not only the basic routing function 4, but also a parental control function 5, a content filter function 6, a NAT function 7, and a firewall function 8.
The different functions such as routing, NAT, firewall, parental control, and content filter all consist of software as well as appropriate software and hardware configuration of a device on which the functions are installed. Once in a while, the software may be updated, software configurations may be changed and/or the hardware configuration may be changed. When this happens, the functions may need to be tested to make sure that they are still working properly. The functions may also need to be tested e.g. once a network gateway is manufactured and before it is shipped out to a customer.
To test the proper working of such functions inside a network gateway, data packets have to be sent from one network to the other via the gateway. In some situations, replies to these packets are required as well in order to carry out proper testing. Therefore, to be able to test a particular function on a gateway, the gateway must be communicatively connected to at least one device in each network. This has several implications.
One implication is that such testing requires active devices on both sides of the gateway, which may not always be the case. For example, an operator changing a content filter setting cannot test the updated filter if there is no device in the home network to test it with.
Another implication is that such testing requires a certain amount of control of the network devices participating in testing. For example, if a user of a computer in a local network wants to test the firewall function of his network gateway for security, he has to send certain Internet Protocol (IP) packets from outside, i.e. from the WAN, to inside, i.e. to his local network. This, in turn, means that the user has to have control over at least one device in the WAN that would be sending such IP packets to his local network.
Yet another implication includes potential additional load on the networks. Not all tests cause significant load. However, if, for example, performance of a firewall function at times when the firewall has to deal with a lot of traffic needs to be tested, a process referred to as a “stress test,” then such a test does cause significant load on the networks.
In addition, the above-described testing of gateway functions takes a certain amount of time due to network latencies of the networks on both sides of the gateway.
What is needed is a method for testing different functions on a network gateway in a manner that improves on one or more of the problems described above.